package com.fuhao.singleton.Enum;

import org.omg.IOP.Codec;

/**
 * 枚举使用方法
 * @author zhang
 *
 */
public enum EnumSingleton {

	/**
	 * 特点：
	 * 1.枚举方法本身就是单例的
	 * 因为构造方法是私有话的
	 * 对象都是static final
	 * 例如：static final EnumSingleton HTTP_CODE_200 = new EnumSingleton();形式
	 */
	//1.定义变量实例，相当于初始化时候就实例化了对象，类型就是EnumSingleton
	HTTP_CODE_200(200,"请求成功"),
	HTTP_CODE_500(500,"请求失败");
	
	EnumSingleton(Integer code,String msg){
		System.out.println("初始化一次");
		this.code = code;
		this.msg = msg;
	}
	
	private Integer code;
	private String msg;
	public Integer getCode() {
		return code;
	}
	public void setCode(Integer code) {
		this.code = code;
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	
	//测试
	public static void main(String[] args) {
		//1.直接启动main方法，发现初始化了两次
		//原因是因为，枚举中每个变量都会初始化一次，上面有两个变量所以初始化两次
		
		System.out.println(EnumSingleton.HTTP_CODE_200.code);
		System.out.println(EnumSingleton.HTTP_CODE_200.msg);
		
		System.out.println(EnumSingleton.HTTP_CODE_500.code);
		System.out.println(EnumSingleton.HTTP_CODE_500.msg);
	}
	
}
